package cn.wgx.modules.sys.entity;

import cn.wgx.modules.base.entity.BaseEntity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;

/**
 * Created By MBG-GUI-EXTENSION https://github.com/spawpaw/mybatis-generator-gui-extension
 * Description:
 * 个人日程安排表
 *
 * @author 
 */
public class SysUserSchedule extends BaseEntity implements Serializable {
    /**
     * 日程ID
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private Integer schedule_id;

    /**
     * 用户ID
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private Integer user_id;

    /**
     * 邀请人
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private Integer inviter;

    /**
     * 标题
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private String title;

    /**
     * 位置
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private String location;

    /**
     * 开始时间
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private Date startDate;

    /**
     * 结束时间
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private Date endDate;

    /**
     * 备注
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private String mark;

    /**
     * 链接
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private String url;

    /**
     * 附件
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private String file;

    /**
     * 类型
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private String type;

    /**
     * 创建时间
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private Date createDate;

    /**
     * 创建人
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private Integer createUserId;

    /**
     * 修改时间
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private Date updateDate;

    /**
     * 修改人
     *
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private Integer updateUser;

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    private static final long serialVersionUID = 1L;

    /**
     * This method returns the value of the database column education..sys_user_schedule.schedule_id
     *
     * @return the value of education..sys_user_schedule.schedule_id
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public Integer getSchedule_id() {
        return schedule_id;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withSchedule_id(Integer schedule_id) {
        this.setSchedule_id(schedule_id);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.schedule_id
     *
     * @param schedule_id the value for education..sys_user_schedule.schedule_id
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setSchedule_id(Integer schedule_id) {
        this.schedule_id = schedule_id;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.user_id
     *
     * @return the value of education..sys_user_schedule.user_id
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public Integer getUser_id() {
        return user_id;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withUser_id(Integer user_id) {
        this.setUser_id(user_id);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.user_id
     *
     * @param user_id the value for education..sys_user_schedule.user_id
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setUser_id(Integer user_id) {
        this.user_id = user_id;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.inviter
     *
     * @return the value of education..sys_user_schedule.inviter
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public Integer getInviter() {
        return inviter;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withInviter(Integer inviter) {
        this.setInviter(inviter);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.inviter
     *
     * @param inviter the value for education..sys_user_schedule.inviter
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setInviter(Integer inviter) {
        this.inviter = inviter;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.title
     *
     * @return the value of education..sys_user_schedule.title
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public String getTitle() {
        return title;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withTitle(String title) {
        this.setTitle(title);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.title
     *
     * @param title the value for education..sys_user_schedule.title
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.location
     *
     * @return the value of education..sys_user_schedule.location
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public String getLocation() {
        return location;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withLocation(String location) {
        this.setLocation(location);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.location
     *
     * @param location the value for education..sys_user_schedule.location
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setLocation(String location) {
        this.location = location;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.startDate
     *
     * @return the value of education..sys_user_schedule.startDate
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public Date getStartDate() {
        return startDate;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withStartDate(Date startDate) {
        this.setStartDate(startDate);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.startDate
     *
     * @param startDate the value for education..sys_user_schedule.startDate
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.endDate
     *
     * @return the value of education..sys_user_schedule.endDate
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public Date getEndDate() {
        return endDate;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withEndDate(Date endDate) {
        this.setEndDate(endDate);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.endDate
     *
     * @param endDate the value for education..sys_user_schedule.endDate
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.mark
     *
     * @return the value of education..sys_user_schedule.mark
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public String getMark() {
        return mark;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withMark(String mark) {
        this.setMark(mark);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.mark
     *
     * @param mark the value for education..sys_user_schedule.mark
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setMark(String mark) {
        this.mark = mark;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.url
     *
     * @return the value of education..sys_user_schedule.url
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public String getUrl() {
        return url;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withUrl(String url) {
        this.setUrl(url);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.url
     *
     * @param url the value for education..sys_user_schedule.url
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.file
     *
     * @return the value of education..sys_user_schedule.file
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public String getFile() {
        return file;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withFile(String file) {
        this.setFile(file);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.file
     *
     * @param file the value for education..sys_user_schedule.file
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setFile(String file) {
        this.file = file;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.type
     *
     * @return the value of education..sys_user_schedule.type
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public String getType() {
        return type;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withType(String type) {
        this.setType(type);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.type
     *
     * @param type the value for education..sys_user_schedule.type
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.createDate
     *
     * @return the value of education..sys_user_schedule.createDate
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public Date getCreateDate() {
        return createDate;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withCreateDate(Date createDate) {
        this.setCreateDate(createDate);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.createDate
     *
     * @param createDate the value for education..sys_user_schedule.createDate
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.createUserId
     *
     * @return the value of education..sys_user_schedule.createUserId
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public Integer getCreateUserId() {
        return createUserId;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withCreateUserId(Integer createUserId) {
        this.setCreateUserId(createUserId);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.createUserId
     *
     * @param createUserId the value for education..sys_user_schedule.createUserId
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setCreateUserId(Integer createUserId) {
        this.createUserId = createUserId;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.updateDate
     *
     * @return the value of education..sys_user_schedule.updateDate
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public Date getUpdateDate() {
        return updateDate;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withUpdateDate(Date updateDate) {
        this.setUpdateDate(updateDate);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.updateDate
     *
     * @param updateDate the value for education..sys_user_schedule.updateDate
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    /**
     * This method returns the value of the database column education..sys_user_schedule.updateUser
     *
     * @return the value of education..sys_user_schedule.updateUser
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public Integer getUpdateUser() {
        return updateUser;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public SysUserSchedule withUpdateUser(Integer updateUser) {
        this.setUpdateUser(updateUser);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_schedule.updateUser
     *
     * @param updateUser the value for education..sys_user_schedule.updateUser
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public void setUpdateUser(Integer updateUser) {
        this.updateUser = updateUser;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", schedule_id=").append(schedule_id);
        sb.append(", user_id=").append(user_id);
        sb.append(", inviter=").append(inviter);
        sb.append(", title=").append(title);
        sb.append(", location=").append(location);
        sb.append(", startDate=").append(startDate);
        sb.append(", endDate=").append(endDate);
        sb.append(", mark=").append(mark);
        sb.append(", url=").append(url);
        sb.append(", file=").append(file);
        sb.append(", type=").append(type);
        sb.append(", createDate=").append(createDate);
        sb.append(", createUserId=").append(createUserId);
        sb.append(", updateDate=").append(updateDate);
        sb.append(", updateUser=").append(updateUser);
        sb.append("]");
        return sb.toString();
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        SysUserSchedule other = (SysUserSchedule) that;
        return (this.getSchedule_id() == null ? other.getSchedule_id() == null : this.getSchedule_id().equals(other.getSchedule_id()))
            && (this.getUser_id() == null ? other.getUser_id() == null : this.getUser_id().equals(other.getUser_id()))
            && (this.getInviter() == null ? other.getInviter() == null : this.getInviter().equals(other.getInviter()))
            && (this.getTitle() == null ? other.getTitle() == null : this.getTitle().equals(other.getTitle()))
            && (this.getLocation() == null ? other.getLocation() == null : this.getLocation().equals(other.getLocation()))
            && (this.getStartDate() == null ? other.getStartDate() == null : this.getStartDate().equals(other.getStartDate()))
            && (this.getEndDate() == null ? other.getEndDate() == null : this.getEndDate().equals(other.getEndDate()))
            && (this.getMark() == null ? other.getMark() == null : this.getMark().equals(other.getMark()))
            && (this.getUrl() == null ? other.getUrl() == null : this.getUrl().equals(other.getUrl()))
            && (this.getFile() == null ? other.getFile() == null : this.getFile().equals(other.getFile()))
            && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
            && (this.getCreateDate() == null ? other.getCreateDate() == null : this.getCreateDate().equals(other.getCreateDate()))
            && (this.getCreateUserId() == null ? other.getCreateUserId() == null : this.getCreateUserId().equals(other.getCreateUserId()))
            && (this.getUpdateDate() == null ? other.getUpdateDate() == null : this.getUpdateDate().equals(other.getUpdateDate()))
            && (this.getUpdateUser() == null ? other.getUpdateUser() == null : this.getUpdateUser().equals(other.getUpdateUser()));
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getSchedule_id() == null) ? 0 : getSchedule_id().hashCode());
        result = prime * result + ((getUser_id() == null) ? 0 : getUser_id().hashCode());
        result = prime * result + ((getInviter() == null) ? 0 : getInviter().hashCode());
        result = prime * result + ((getTitle() == null) ? 0 : getTitle().hashCode());
        result = prime * result + ((getLocation() == null) ? 0 : getLocation().hashCode());
        result = prime * result + ((getStartDate() == null) ? 0 : getStartDate().hashCode());
        result = prime * result + ((getEndDate() == null) ? 0 : getEndDate().hashCode());
        result = prime * result + ((getMark() == null) ? 0 : getMark().hashCode());
        result = prime * result + ((getUrl() == null) ? 0 : getUrl().hashCode());
        result = prime * result + ((getFile() == null) ? 0 : getFile().hashCode());
        result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
        result = prime * result + ((getCreateDate() == null) ? 0 : getCreateDate().hashCode());
        result = prime * result + ((getCreateUserId() == null) ? 0 : getCreateUserId().hashCode());
        result = prime * result + ((getUpdateDate() == null) ? 0 : getUpdateDate().hashCode());
        result = prime * result + ((getUpdateUser() == null) ? 0 : getUpdateUser().hashCode());
        return result;
    }

    /**
     *
     * @mbg.generated Wed Jul 15 16:04:29 CST 2020
     */
    public enum Column {
        schedule_id("schedule_id", "schedule_id", "INTEGER", false),
        user_id("user_id", "user_id", "INTEGER", false),
        inviter("inviter", "inviter", "INTEGER", false),
        title("title", "title", "VARCHAR", false),
        location("location", "location", "VARCHAR", false),
        startDate("startDate", "startDate", "TIMESTAMP", false),
        endDate("endDate", "endDate", "TIMESTAMP", false),
        mark("mark", "mark", "VARCHAR", false),
        url("url", "url", "VARCHAR", false),
        file("file", "file", "VARCHAR", false),
        type("type", "type", "VARCHAR", false),
        createDate("createDate", "createDate", "TIMESTAMP", false),
        createUserId("createUserId", "createUserId", "INTEGER", false),
        updateDate("updateDate", "updateDate", "TIMESTAMP", false),
        updateUser("updateUser", "updateUser", "INTEGER", false);

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        private static final String BEGINNING_DELIMITER = "\"";

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        private static final String ENDING_DELIMITER = "\"";

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        private final String column;

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        private final boolean isColumnNameDelimited;

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        private final String javaProperty;

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        private final String jdbcType;

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        public String value() {
            return this.column;
        }

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        public String getValue() {
            return this.column;
        }

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        public String getJavaProperty() {
            return this.javaProperty;
        }

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        public String getJdbcType() {
            return this.jdbcType;
        }

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        Column(String column, String javaProperty, String jdbcType, boolean isColumnNameDelimited) {
            this.column = column;
            this.javaProperty = javaProperty;
            this.jdbcType = jdbcType;
            this.isColumnNameDelimited = isColumnNameDelimited;
        }

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        public String desc() {
            return this.getEscapedColumnName() + " DESC";
        }

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        public String asc() {
            return this.getEscapedColumnName() + " ASC";
        }

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        public static Column[] excludes(Column ... excludes) {
            ArrayList<Column> columns = new ArrayList<>(Arrays.asList(Column.values()));
            if (excludes != null && excludes.length > 0) {
                columns.removeAll(new ArrayList<>(Arrays.asList(excludes)));
            }
            return columns.toArray(new Column[]{});
        }

        /**
         *
         * @mbg.generated Wed Jul 15 16:04:29 CST 2020
         */
        public String getEscapedColumnName() {
            if (this.isColumnNameDelimited) {
                return new StringBuilder().append(BEGINNING_DELIMITER).append(this.column).append(ENDING_DELIMITER).toString();
            } else {
                return this.column;
            }
        }
    }
}